/* -------------------------------------------------------------------------------- */
/* -- µGUI - Generic GUI module (C)Achim Döbler, 2015                            -- */
/* -------------------------------------------------------------------------------- */
// µGUI is a generic GUI module for embedded systems.
// This is a free software that is open for education, research and commercial
// developments under license policy of following terms.
//
//  Copyright (C) 2015, Achim Döbler, all rights reserved.
//  URL: http://www.embeddedlightning.com/
//
// * The µGUI module is a free software and there is NO WARRANTY.
// * No restriction on use. You can use, modify and redistribute it for
//   personal, non-profit or commercial products UNDER YOUR RESPONSIBILITY.
// * Redistributions of source code must retain the above copyright notice.
//
/* -------------------------------------------------------------------------------- */
#ifndef __UGUI_CORE_H
#define __UGUI_CORE_H

extern UG_GUI* pGUI;
extern const UG_COLOR pal_window[];
extern const UG_COLOR pal_button_pressed[];
extern const UG_COLOR pal_button_released[];
extern const UG_COLOR pal_checkbox_pressed[];
extern const UG_COLOR pal_checkbox_released[];

/* -------------------------------------------------------------------------------- */
/* -- PROTOTYPES                                                                 -- */
/* -------------------------------------------------------------------------------- */
static void _UG_PutChar( char chr, UG_S16 x, UG_S16 y, UG_COLOR fc, UG_COLOR bc, const UG_FONT* font);
void _UG_PutText(UG_TEXT* txt);
extern UG_OBJECT* _UG_GetFreeObject( UG_WINDOW* wnd );
UG_OBJECT* _UG_SearchObject( UG_WINDOW* wnd, UG_U8 type, UG_U8 id );
UG_RESULT _UG_DeleteObject( UG_WINDOW* wnd, UG_U8 type, UG_U8 id );
void _UG_ProcessTouchData( UG_WINDOW* wnd );
void _UG_UpdateObjects( UG_WINDOW* wnd );
void _UG_HandleEvents( UG_WINDOW* wnd );
void _UG_DrawObjectFrame( UG_S16 xs, UG_S16 ys, UG_S16 xe, UG_S16 ye, UG_COLOR* p );


#endif
